﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LM.InterfacesFabricas.DTOs;
using System.IO;

namespace LM.Tela.Desktop
{
    public partial class frmVisualizaImpressaoReciboDeLocacao : Form
    {
        public frmVisualizaImpressaoReciboDeLocacao(DtoLocacao locacao)
        {
            InitializeComponent();
            CrieReciboDeLocacao(locacao);
        }

        private void CrieReciboDeLocacao(DtoLocacao locacao)
        {
            var totalComDesconto = locacao.Total - (locacao.Total * locacao.Desconto);

            List<string> recibo = new List<string>();
            recibo.Add("-------- Recibo de Locação --------");
            recibo.Add("\n");
            recibo.Add("Cliente: ".PadLeft(24)          + locacao.Cliente.Nome);
            recibo.Add("Cpf: ".PadLeft(24)              + locacao.Cliente.Cpf);
            recibo.Add("Data De Entrada: ".PadLeft(24)  + locacao.DataEntrada.ToString("dd/MM/yyyyy"));
            recibo.Add("Data de Saida: ".PadLeft(24)    + locacao.DataSaida.ToString("dd/MM/yyyyy"));
            recibo.Add("Valor Locação: ".PadLeft(24)    + String.Format("{0:C}", locacao.Total));
            recibo.Add("Desconto: ".PadLeft(24)         + locacao.Desconto);
            recibo.Add("\n");
            recibo.Add("Valor Total da Locação: " + String.Format("{0:C}", totalComDesconto));
            recibo.Add("\n\n");
            recibo.Add("----------- LocManager ------------");

            //mostra o recibo na tela
            foreach (var item in recibo)
            {
                txtRecibo.Text += item + Environment.NewLine;
            }
            
            //grava arquivo em texto se necessário
            //System.IO.File.WriteAllLines(@"C:\recibos\recibos de Locacao\recibo.txt", recibo);
        }

        private void btnImprimir_Click(object sender, EventArgs e)
        {
            //imprimir
            printDialog1.Document = printDocument1;

            //var doc = new StreamReader();
            if (printDialog1.ShowDialog() == DialogResult.OK)
            {
                this.printDocument1.Print();
            }

            // ainda não implementado
        }

        private void btnFechar_Click(object sender, EventArgs e)
        {
            txtRecibo.Text = String.Empty;
            this.Close();
        }



    }
}
